#include <vector>

class Renderer
{
public:
	Renderer();
	~Renderer();

	void Initialize();
	void Update(float deltaTime);
	void Render();
	void CleanUp();

	void SetWindowSize(unsigned int width, unsigned int height);

	GLuint LoadShader(GLenum shaderType, const std::string &fileName);
	GLuint CreateProgram(const std::vector<GLuint> &shaders);

private:
	// Renderer states
	unsigned int windowWidth;
	unsigned int windowHeight;

	// 
	GLuint program;
	GLuint numOfVertices;
	GLuint vertexBufferObject;
	GLuint vertexArrayObject;
	GLuint indexBufferObject;

	// Program parameters
	GLuint offsetUniform;

};